// Verilated -*- C++ -*-
// DESCRIPTION: Verilator output: Design implementation internals
// See Vsecret_impl.h for the primary calling header

#include "Vsecret_impl.h"
#include "Vsecret_impl_PSvZrA.h"

//==========

Vsecret_impl::Vsecret_impl(VerilatedContext* _vcontextp__, const char* _vcname__)
    : VerilatedModule{_vcname__}
 {
    Vsecret_impl_PSvZrA* __restrict vlSymsp = __VlSymsp = new Vsecret_impl_PSvZrA(_vcontextp__, this, name());
    Vsecret_impl* const __restrict vlTOPp VL_ATTR_UNUSED = vlSymsp->TOPp;
    // Reset internal values

    // Reset structure values
    PSNmyH(this);
}

void Vsecret_impl::PS2Eji(Vsecret_impl_PSvZrA* vlSymsp, bool first) {
    if (false && first) {}  // Prevent unused
    this->__VlSymsp = vlSymsp;
    if (false && this->__VlSymsp) {}  // Prevent unused
    vlSymsp->_vm_contextp__->timeunit(-12);
    vlSymsp->_vm_contextp__->timeprecision(-12);
}

Vsecret_impl::~Vsecret_impl() {
    VL_DO_CLEAR(delete __VlSymsp, __VlSymsp = nullptr);
}

void Vsecret_impl::PS57ij(Vsecret_impl_PSvZrA* __restrict vlSymsp) {
    VL_DEBUG_IF(VL_DBG_MSGF("+    Vsecret_impl::PS57ij\n"); );
    Vsecret_impl* const __restrict vlTOPp VL_ATTR_UNUSED = vlSymsp->TOPp;
    // Body
    VL_WRITEF("[%0t] %Nsecret_impl: initialized\n",
              64,VL_TIME_UNITED_Q(1),-12,vlSymsp->name());
    vlTOPp->PSxTSi = 0U;
}

void Vsecret_impl::PSHAFY(Vsecret_impl_PSvZrA* __restrict vlSymsp) {
    VL_DEBUG_IF(VL_DBG_MSGF("+    Vsecret_impl::PSHAFY\n"); );
    Vsecret_impl* const __restrict vlTOPp VL_ATTR_UNUSED = vlSymsp->TOPp;
    // Body
    vlTOPp->PS57ij(vlSymsp);
    vlTOPp->PSbAU8 = vlTOPp->clk;
}

void Vsecret_impl::final() {
    VL_DEBUG_IF(VL_DBG_MSGF("+    Vsecret_impl::final\n"); );
    // Variables
    Vsecret_impl_PSvZrA* __restrict vlSymsp = this->__VlSymsp;
    Vsecret_impl* const __restrict vlTOPp VL_ATTR_UNUSED = vlSymsp->TOPp;
}

void Vsecret_impl::PSl3Hn(Vsecret_impl_PSvZrA* __restrict vlSymsp) {
    VL_DEBUG_IF(VL_DBG_MSGF("+    Vsecret_impl::PSl3Hn\n"); );
    Vsecret_impl* const __restrict vlTOPp VL_ATTR_UNUSED = vlSymsp->TOPp;
}

void Vsecret_impl::PSNmyH(Vsecret_impl* self) {
    VL_DEBUG_IF(VL_DBG_MSGF("+    Vsecret_impl::PSNmyH\n"); );
    // Body
    if (false && self) {}  // Prevent unused
    self->a = VL_RAND_RESET_I(32);
    self->b = VL_RAND_RESET_I(32);
    self->x = VL_RAND_RESET_I(32);
    self->clk = VL_RAND_RESET_I(1);
    self->PSxTSi = VL_RAND_RESET_I(32);
}
